/**
 * Copyright &copy; 2020 <a href="https://github.com/somowhere/exam-system">exam-system</a> All rights reserved.
 */
package com.shanhesoft.java.modules.exam.domain;

import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import com.shanhesoft.java.common.core.annotation.DictType;
import com.shanhesoft.java.common.persistence.domain.IdEntity;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.*;

/**
 * 编程题管理Entity 编程题管理
 * @author admin
 * @version 2020-09-26 20:36:04
 */
@TableName(value = "oj_problems")
@Data @ToString @NoArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OjProblems extends IdEntity<OjProblems> {

	private static final long serialVersionUID = 1L;
	/** F_QUESTIONBANKID question_bank_id  :  题库编号 */
	public static final String F_QUESTIONBANKID = "questionBankId";
	/** F_LANGUAGEID language_id  :  编程语言编号 */
	public static final String F_LANGUAGEID = "languageId";
	/** F_PROBLEMTYPE problem_type  :  1->练习,2->作业,3->试题 */
	public static final String F_PROBLEMTYPE = "problemType";
	/** F_PROBLEMNAME problem_name  :  试题名称 */
	public static final String F_PROBLEMNAME = "problemName";
	/** F_PROBLEMTIMELIMIT problem_time_limit  :  最大运行时间 */
	public static final String F_PROBLEMTIMELIMIT = "problemTimeLimit";
	/** F_PROBLEMMEMORYLIMIT problem_memory_limit  :  最大运行内存 */
	public static final String F_PROBLEMMEMORYLIMIT = "problemMemoryLimit";
	/** F_PROBLEMDESCRIPTION problem_description  :  试题描述 */
	public static final String F_PROBLEMDESCRIPTION = "problemDescription";
	/** F_PROBLEMINPUTFORMAT problem_input_format  :  输入格式 */
	public static final String F_PROBLEMINPUTFORMAT = "problemInputFormat";
	/** F_PROBLEMOUTPUTFORMAT problem_output_format  :  输出格式 */
	public static final String F_PROBLEMOUTPUTFORMAT = "problemOutputFormat";
	/** F_PROBLEMSAMPLEINPUT problem_sample_input  :  输入样例 */
	public static final String F_PROBLEMSAMPLEINPUT = "problemSampleInput";
	/** F_PROBLEMSAMPLEOUTPUT problem_sample_output  :  输出样例 */
	public static final String F_PROBLEMSAMPLEOUTPUT = "problemSampleOutput";
	/** F_PROBLEMHINT problem_hint  :  试题提示 */
	public static final String F_PROBLEMHINT = "problemHint";
	/** F_PROBLEANSWER problem_answer  :  参考代码 */
	public static final String F_PROBLEANSWER = "problemAnswer";

	/** questionBankId 题库编号 */@NotBlank @Size(max=50)
	@TableField("question_bank_id")
	private String questionBankId;
	/** languageId 编程语言编号 */@NotBlank @Size(max=50)
	@TableField("language_id")
	private String languageId;
	/** problemType 1->练习,2->作业,3->试题 */@NotNull
	@TableField("problem_type")
	private Integer problemType;
	/** problemName 试题名称 */@NotBlank @Size(max=128)
	@TableField("problem_name")
	private String problemName;
	/** problemTimeLimit 最大运行时间 */@NotNull
	@TableField("problem_time_limit")
	private Long problemTimeLimit;
	/** problemMemoryLimit 最大运行内存 */@NotNull
	@TableField("problem_memory_limit")
	private Long problemMemoryLimit;
	/** problemDescription 试题描述 */@NotBlank @Size(max=65535)
	@TableField("problem_description")
	private String problemDescription;
	/** problemInputFormat 输入格式 */@NotBlank @Size(max=65535)
	@TableField("problem_input_format")
	private String problemInputFormat;
	/** problemOutputFormat 输出格式 */@NotBlank @Size(max=65535)
	@TableField("problem_output_format")
	private String problemOutputFormat;
	/** problemSampleInput 输入样例 */@NotBlank @Size(max=65535)
	@TableField("problem_sample_input")
	private String problemSampleInput;
	/** problemSampleOutput 输出样例 */@NotBlank @Size(max=65535)
	@TableField("problem_sample_output")
	private String problemSampleOutput;
	/** problemHint 试题提示 */@Size(max=65535)
	@TableField("problem_hint")
	private String problemHint;
	/** problemAnswer 参考答案 */@Size(max=65535)
	@TableField("problem_answer")
	private String problemAnswer;

	@Override
    public boolean equals(Object o) {
        return super.equals(o);
    }
    @Override
    public int hashCode() {
        return super.hashCode();
    }
}
